package org.jeecg.modules.coucoursearrange.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: cou_course_arrange
 * @author: baochangrong
 * @Date:   2022-02-25
 * @Version: V1.0
 */
@Data
@TableName("cou_course_arrange")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="cou_course_arrange对象", description="cou_course_arrange")
public class CouCourseArrange implements Serializable {
    private static final long serialVersionUID = 1L;

	/**id*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    private String id;
	/**课表编码*/
	@Excel(name = "课表编码", width = 15)
    @ApiModelProperty(value = "课表编码")
    private String courseArrangeCode;
	/**课表名称*/
	@Excel(name = "课表名称", width = 15)
    @ApiModelProperty(value = "课表名称")
    private String courseArrangeName;

    /**学期ID*/
    @Excel(name = "学期ID", width = 15)
    @ApiModelProperty(value = "学期ID")
    @Dict(dicCode = "id" ,dicText = "semester_name", dictTable = "cou_semester")
    private String semesterId;
    /**学年ID*/
    @Excel(name = "学年ID", width = 15)
    @ApiModelProperty(value = "学年ID")
    @Dict(dicCode = "id" ,dicText = "school_year_name", dictTable = "cou_school_year")
    private String schoolYearId;

	/**课表类型(1:班级(默认);2教室场地 3.老师;4.科目 5:学生;)，课表应用对象类型*/
	@Excel(name = "课表类型(1:班级(默认);2教室场地 3.老师;4.科目 5:学生;)，课表应用对象类型", width = 15)
    @ApiModelProperty(value = "课表类型(1:班级(默认);2教室场地 3.老师;4.科目 5:学生;)，课表应用对象类型")
    @Dict(dicCode = "course_target_obj_ttype")
    private Integer courseArrangeTtype;
	/**目标对象id(班级id(默认)，场地id，老师id，科目id,学生id)，表示该课表应用对象*/
	@Excel(name = "目标对象id(班级id(默认)，场地id，老师id，科目id,学生id)，表示该课表应用对象", width = 15)
    @ApiModelProperty(value = "目标对象id(班级id(默认)，场地id，老师id，科目id,学生id)，表示该课表应用对象")
    @Dict(dicCode = "id" ,dicText = "class_name", dictTable = "cou_class")
    private String targetObjId;
	/**单双周标识(1单周（默认），2双周 3三周 4四周)*/
	@Excel(name = "单双周标识(1单周（默认），2双周 3三周 4四周)", width = 15)
    @ApiModelProperty(value = "单双周标识(1单周（默认），2双周 3三周 4四周)")
    @Dict(dicCode = "common_iz_single")
    private Integer courseArrangeIzSingle;
	/**课表状态：(1初始 2预排课 3已排课 4已发布 5已下线 6需重排)*/
	@Excel(name = "课表状态：(1初始 2预排课 3已排课 4已发布 5已下线 6需重排)", width = 15)
    @ApiModelProperty(value = "课表状态：(1初始 2预排课 3已排课 4已发布 5已下线 6需重排)")
    @Dict(dicCode = "course_arrange_status")
    private String courseArrangeStatus;
    /**显示排序序号*/
    @Excel(name = "显示排序序号", width = 15)
    @ApiModelProperty(value = "显示排序序号")
    private Integer courseArrangeOrder;
    /**课表模板id*/
    @Excel(name = "课表模板id", width = 15)
    @ApiModelProperty(value = "课表模板id")
    @Dict(dicCode = "id" ,dicText = "coursche_temp_name", dictTable = "cou_courseschedule_template")
    private String courscheTempId;

    /**课表来源id*/
    @Excel(name = "课表来源id", width = 15)
    @ApiModelProperty(value = "课表来源id")
    @Dict(dicCode = "id" ,dicText = "course_arrange_name", dictTable = "cou_course_arrange")
    private String courscheSourceId;
	/**是否启用（0否停用，1是启用）*/
	@Excel(name = "是否启用（0否停用，1是启用）", width = 15)
    @ApiModelProperty(value = "是否启用（0否停用，1是启用）")
    @Dict(dicCode = "iz_open")
    private Integer izOpen=1;

    /**课表启用开始日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "课表启用开始日期")
    private Date openStartTime;
    /**课表启用结束日期(含)*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "课表启用结束日期(含)")
    private Date openStopTime;

	/**是否删除（0否 1是已删除）*/
	@Excel(name = "是否删除（0否 1是已删除）", width = 15)
    @ApiModelProperty(value = "是否删除（0否 1是已删除）")
    @Dict(dicCode = "iz_delete")
    private Integer izDelete=0;
	/**学校编码*/
	@Excel(name = "学校编码", width = 15)
    @ApiModelProperty(value = "学校编码")
    private String tenantId;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
	/**创建人*/
	@Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
    private String createUser;
	/**编辑时间*/
	@Excel(name = "编辑时间", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "编辑时间")
    private Date editTime;
	/**编辑人*/
	@Excel(name = "编辑人", width = 15)
    @ApiModelProperty(value = "编辑人")
    private String editUser;

	//返回数据补充
    @ApiModelProperty(value = "年级编码")
    @TableField(exist = false)
    private String gradeCode;

    // 年级  非数据库字段
    @TableField(exist = false)
    private String gradeId;
}
